package com.hzit.service.impl;

import com.hzit.entity.TbTypeTemplate;
import com.hzit.mapper.TbTypeTemplateMapper;
import com.hzit.service.TemplateService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Controller;
import org.springframework.stereotype.Repository;
import org.springframework.stereotype.Service;

import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
import javax.annotation.Resource;
import java.util.List;

/**
 * 类名：
 * 作者：WF
 * 功能：
 */
// @Service @Repository @Component @Controller  四个注解的作用是一样的，都是构造出javabean并放到spring容器中
// 平时开发中，将	@Service用在service层，将@Repository用在dao层 ，将@Controller用在控制器层，将@Component用在未确定功能的类上
@Service   //如果放的时候没有指定名字就是这个类名，首字母改为小写
// @Scope("prototype")
public class TemplateServiceImpl implements TemplateService {
	@Autowired  // 按照类型从spring容器中取数据,如果在spring容器中有多个类型一样的bean就可以使用@Qualifier指定要取出的
	// bean的名字，属于spring注解
	//@Qualifier("stu2") // 属于spirng注解
	//@Resource   // 可以按照名字或类型取bean，默认按照名字取bean，此注解不属于spring，只是spring进行了扩展
	private TbTypeTemplateMapper templateMapper;

	//1. 查询所有的模板列表
	@Override
	public List<TbTypeTemplate> findAll() {
		return templateMapper.selectByExample(null);
	}

	//2. 初始化方法
	@PostConstruct  // 相当于：init-method=""
	public void init(){
		System.out.println("init...");
	}

	@PreDestroy   // 相当于：destroy-method=""
	public void destroy(){
		System.out.println("destroy...");
	}

}
